Since the advent of high-level languages, many developers have desired to provide flexible and scalable software which can be implemented in various products. Such flexible and scalable software may be cost-effective when small changes to the source code are required to accommodate customer's preferences, different product requirements, software version upgrading or the like. One of the high-level languages suitable for providing flexible and scalable software is C++ which is one of the most sophisticated programming languages available to developers. Its power is rooted in the concept of the class, templates, and a natural extension to data structure found in C language. Through out the developing phase, a developer may desire to remove or add certain features from/to a compiled C++ program without rewriting the source code. However, if any feature is removed arbitrarily from a compiled program, it will introduce compile-time or link-time errors.
Therefore, it would be desirable to provide a method which allows the developer to remove or add certain features from a compiled program without introducing errors. It would be also desirable to provide a method which provides a default behavior for a procedure if the procedure is not defined in the compiled program.